#!/bin/bash

# 主仓库更新脚本 all_pull.sh
# 功能：拉取更新后，将父仓和所有子仓切换到master分支

set -e  # 遇到错误立即退出

echo "开始更新主仓库和子模块..."

## 1. 拉取主仓库更新
echo "正在拉取主仓库更新..."
git pull

## 2. 更新子模块
echo "正在初始化并更新子模块..."
git submodule update --init --recursive

## 3. 切换到master分支
echo "正在将父仓库切换到master分支..."
git checkout master

echo "正在将所有子模块切换到master分支..."
git submodule foreach --recursive 'git checkout master || echo "子模块 $name 可能没有master分支，跳过"'

## 4. 同步子模块到最新master
echo "正在同步子模块到master分支最新版本..."
git submodule update --remote --recursive

## 5. 显示最终状态
echo ""
echo "更新完成！当前状态："
echo "父仓库分支：$(git branch --show-current)"
echo ""
echo "子模块状态："
git submodule status --recursive

